#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
    @Author 黄海峰
    @Date 2021/4/14 09:45
    @Version 1.0.0
"""

print(help(max))

print(max(1, 2))

# 自定义函数
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

print(my_abs(-99))

# pass 代表一个空函数
def my_pass():
    print("my_pass====>")
    pass

print(my_pass())

# 引入包，以及多参数返回
import math

def hhf_def(x, y):
    nx = x + math.cos(11)
    ny = y + math.sin(11)
    return nx,ny

print(hhf_def(1, 2))

nxx, nyy = hhf_def(1, -1)
print(nxx)
print(nyy)

# 如何增加参数，保证方法兼容（默认参数必须指向不变对象）

def my_add(x, y = 0):
    return x + y + 5

print(my_add(5))
print(my_add(10, 10))

# 默认参数必须指向不变对象
def default_def(L = []):
    L.append('HHF')

    # 下面的操作返回的是操作，所以是NODE
    # return L.append('HHF')

    return L

print(default_def())
print(default_def())

def append2(self):
    self.append('xxx')
    # return self.append('zzz')
    return self

def default_def2(L = []):
    return append2(L)

print(default_def2(['111']))


# 递归函数
def fact(n):
    if n == 1:
        return 1
    return n * fact(n - 1)

print(fact(10))